"""
defaultdict([default_factory[,...]])
返回一个新的类似字典的对象
使用list作为default_factory，可以将（键-值对组成的）序列转换为（键-列表组成的）字典
"""
from collections import defaultdict

s=[("yellow",1),("blue",2),("yellow",3),("blue",4),("red",1)]
d=defaultdict(list)
for k,v in s:
    d[k].append(v)

print(d)

#defaultdict使用list作为default_factory
d1=defaultdict(list)
d1["a"].append(1)
d1["a"].append(2)
d1["b"].append(5)
d1["b"].append(6)
print(d1)

#defaultdict使用set作为default_factory
d2=defaultdict(set)
d2["a"].add(2)
d2["a"].add(3)
d2["a"].add(2)
d2["b"].add(4)
print(d2)

#使用defaultdict可以优化代码
d={}
pairs=[("yellow",1),("blue",2),("yellow",3),("blue",4),("red",1)]
for key,value in pairs:
    if key not in d:
        d[key]=[]
    d[key].append(value)

dedict=defaultdict(list)
for key,value in pairs:
    dedict[key].append(value)

